上一天教大家如何取得資料中的userid,這天教大家如何發送訊息給使用者
以下列表為所有支援的訊息種類
種 類 | 參數 |
---|---|
Text message | (type, text, emojis, emojis.index, emojis.productId, emojis.emojiId) |
Sticker message | (type, packageId, stickerId) |
Image message | (type, originalContentUrl, previewImageUrl) |
Video message | (type, originalContentUrl, previewImageUrl, trackingId) |
Audio message | (type, originalContentUrl, duration) |
Location message | (type, title, address, latitude, longitude) |
Imagemap message | (type, baseUrl, altText, baseSize.width, baseSize.height, video.originalContentUrl, video.previewImageUrl, video.area.x, video.area.y, video.area.width, video.area.height, video.externalLink.linkUrl, video.externalLink.label, actions) |
Template message | (type, altText, template) |
Flex message | (type, altText, contents) |
詳細可以到官方網站查看,那邊會有更詳細的講解。
為了方便執行,請在函式內新增幾行程式碼
from linebot.models import *
.
.
.
@app.route("/", methods=['POST'])
def get_reply():
try:
api = LineBotApi('<你的channel access token>')
handler = WebhookHandler('<你的<channel secret>>')
userid = "<從終端機中取得的用戶ID>"
這邊Demo幾個常用的
api.push_message(userid, TextSendMessage(text="<你想說的話>"))
結果如下圖
若想要在文字中插入emoji也可以這樣寫
emoji_index = []
emoji_replace_1 = {
"index": 0,
"productId": "5ac21a8c040ab15980c9b43f",
"emojiId": "053"
}
emoji_replace_2 = {
"index": 2,
"productId": "5ac21a8c040ab15980c9b43f",
"emojiId": "054"
}
emoji_replace_3 = {
"index": 4,
"productId": "5ac21a8c040ab15980c9b43f",
"emojiId": "055"
}
emoji_index.append(emoji_replace_1)
emoji_index.append(emoji_replace_2)
emoji_index.append(emoji_replace_3)
api.push_message(userid, TextSendMessage(text="$ $ $", emojis=emoji_index))
這邊可能比較難理解,一開始我們定義一個變數叫"emoji_index"用來存放我們需要取代文字的資料,底下我們定義了三個字典,內部的key意思如下所示
都放入變數"emoji_index"後在push_message中新增emojis=emoji_index
即可
這應該算是最簡單的
api.push_message(userid, StickerSendMessage(package_id=1070, sticker_id=17842))
詳細設定也可至官方文件中複製id
這個限制就比較多了
雖然條件少,但要得達成上述的條件也不容易,而且不能傳本地的圖片真的是無言......
api.push_message(userid, ImageSendMessage(original_content_url="https://megapx-assets.dcard.tw/images/9628e1ab-ee4b-4ba6-83e3-e42164b056ce/640.webp", preview_image_url="https://megapx-assets.dcard.tw/images/9628e1ab-ee4b-4ba6-83e3-e42164b056ce/640.webp"))